스프링 mvc Validation 추상화 org.springframework.validation.Validator 애플리케이션에서 사용하는 객체 검증용 인터페이스. 특징 어떤한 계층과도 관계가 없다. => 모든 계층(웹, 서비스, 데이터)에서 사용해도 좋다. 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다. (LocalValidatorFactor... 스프링 mvc스프링 mvc 스프링 AOP와 프록시 패턴 1. AOP(Aspect of Programming) 관점 지향 프로그래밍 2. AOP 구현 방법 다양한 AOP 구현 방법(옵션) 컴파일 : A.java ----(AOP)---> A.class (AspectJ) 컴파일 중간에 AOP를 조작 바이트코드 조작 : A.java -> A.class ---(AOP)---> 메모리 (AspectJ) 클래스 로더가 클래스 파일을 로딩하는 시점에서 AOP를... 스프링 mvc스프링 mvc IoC 컨테이너 (6) : ResourceLoader ResourceLoader 리소스를 읽어오는 기능을 제공하는 인터페이스 ApplicationContext extends ResourceLoader 리소스 읽어오기 파일 시스템에서 읽어오기 클래스패스에서 읽어오기 URL로 읽어오기 상대/절대 경로로 읽어오기 Resource getResource(java.lang.String location) 빌드를 하면 target class 밑에 리소스가 들... 스프링 mvc스프링 mvc IoC 컨테이너 (1) : IoC 컨테이너, BeanFactory, ApplicationContext 스프링 IoC 컨테이너가 하는 주요한 기능은 "빈(bean)을 만들고 엮어주며 제공해주는 것"(빈의 생성, 빈의 의존성 주입, 빈의 스코프 관리)이다. 스프링 IoC 컨테이너의 가장 최상위에 있는 인터페이스는 BeanFactory이다. 스프링 공식 문서에 보면 BeanFactory의 요점을 다음과 같이 정의한다. 빈 설정 소스로 부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다. 스프링 I... 스프링 mvc스프링 mvc MVC 활용(18) : 핸들러 메소드 10부 - @SessionAttribute 핸들러 메소드 10부 - @SessionAttribute HTTP 세션에 들어있는 값 참조할 때 사용 HttpSession을 사용할 때 비해 타입 컨버전을 자동으로 지원하기 때문에 조금 편리함. HTTP 세션에 데이터를 넣고 빼고 싶은 경우에는 HttpSession을 사용할 것. @SessionAttributes와는 다르다. @SessionAttributes는 해당 컨트롤러 내에서만 동작. ... 스프링 mvc스프링 mvc 스프링 MVC 설정(1) : 스프링 MVC 빈 설정 1. 스프링 MVC 빈 설정 기본 전략 객체를 커스터마이징 해서 사용하기 @RequestBody나 @ResponseBody가 쓰일 때는(json, xml 파싱 등) MessageConverter가 사용된다. 따라서 MessageConverter 기능을 사용하고 싶다면 빈으로 등록해야 한다. 기본 전략 이외에 커스텀한 기능을 추가하고 싶으면 빈으로 등록해야 한다. 참고 인프런 : 스프링 웹 M... 스프링 mvc스프링 mvc MVC 활용(28) : 예외 처리 핸들러 - @ExceptionHandler 예외 처리 핸들러 - @ExceptionHandler 특정 예외가 발생한 요청을 처리하는 핸들러 정의 지원하는 메소드 아규먼트 (해당 예외 객체, 핸들러 객체, ...) 지원하는 리턴 값 REST API의 경우 응답 본문에 에러에 대한 정보를 담아주고, 상태 코드를 설정하려면 ResponseEntity를 주로 사용한다. 커스텀한 에러 만들기 커스텀한 에러가 발생했을 때 특정한 메시지와 함께 ... 스프링 mvc스프링 mvc MVC 활용(3) : HTTP 요청 맵핑하기 2부 - URI 패턴 맵핑 3. HTTP 요청 맵핑하기 2부 - URI 패턴 맵핑 URI, URL, URN 햇갈린다 여러개의 문자열로 매핑할 수도 있다. 테스트 코드 ? : 한 글자 (“/author/???” => “/author/123”) * : 여러 글자 (“/author/*” => “/author/keesun”) ** : 여러 패스 (“/author/** => “/author/keesun/book”) 테스트 코드... 스프링 mvc스프링 mvc 스프링 MVC 동작 원리(1) : 스프링 MVC 소개 자바 엔터프라이즈 에디션(Jave EE)은 웹 애플리케이션을 개발할 수 있는 HTTP Servlet(이하 서블릿)이라는 스팩과 API를 제공한다. 스프링 MVC는 서블릿 API 기반 애플리케이션을 개발할 때 보다 쉽고 빠르게 개발할 수 있는 프레임워크를 제공하여 개발자가 서블릿 API 보다는 애플리케이션 로직에 집중할 수 있도록 도와준다. 현재 많은 회사에서 스프링 MVC 기반으로 엔터프라이... 스프링 mvc스프링 mvc MVC 활용(16) : 핸들러 메소드 8부 - @SessionAttributes 핸들러 메소드 8부 - @SessionAttributes 모델 정보를 HTTP 세션에 저장해주는 애노테이션 HttpSession을 직접 사용할 수도 있지만 이 애노테이션에 설정한 이름에 해당하는 모델 정보를 자동으로 세션에 넣어준다. @ModelAttribute는 세션에 있는 데이터도 바인딩한다. 여러 화면(또는 요청)에서 사용해야 하는 객체를 공유할 때 사용한다. SessionStatus를... 스프링 mvc스프링 mvc
Validation 추상화 org.springframework.validation.Validator 애플리케이션에서 사용하는 객체 검증용 인터페이스. 특징 어떤한 계층과도 관계가 없다. => 모든 계층(웹, 서비스, 데이터)에서 사용해도 좋다. 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다. (LocalValidatorFactor... 스프링 mvc스프링 mvc 스프링 AOP와 프록시 패턴 1. AOP(Aspect of Programming) 관점 지향 프로그래밍 2. AOP 구현 방법 다양한 AOP 구현 방법(옵션) 컴파일 : A.java ----(AOP)---> A.class (AspectJ) 컴파일 중간에 AOP를 조작 바이트코드 조작 : A.java -> A.class ---(AOP)---> 메모리 (AspectJ) 클래스 로더가 클래스 파일을 로딩하는 시점에서 AOP를... 스프링 mvc스프링 mvc IoC 컨테이너 (6) : ResourceLoader ResourceLoader 리소스를 읽어오는 기능을 제공하는 인터페이스 ApplicationContext extends ResourceLoader 리소스 읽어오기 파일 시스템에서 읽어오기 클래스패스에서 읽어오기 URL로 읽어오기 상대/절대 경로로 읽어오기 Resource getResource(java.lang.String location) 빌드를 하면 target class 밑에 리소스가 들... 스프링 mvc스프링 mvc IoC 컨테이너 (1) : IoC 컨테이너, BeanFactory, ApplicationContext 스프링 IoC 컨테이너가 하는 주요한 기능은 "빈(bean)을 만들고 엮어주며 제공해주는 것"(빈의 생성, 빈의 의존성 주입, 빈의 스코프 관리)이다. 스프링 IoC 컨테이너의 가장 최상위에 있는 인터페이스는 BeanFactory이다. 스프링 공식 문서에 보면 BeanFactory의 요점을 다음과 같이 정의한다. 빈 설정 소스로 부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다. 스프링 I... 스프링 mvc스프링 mvc MVC 활용(18) : 핸들러 메소드 10부 - @SessionAttribute 핸들러 메소드 10부 - @SessionAttribute HTTP 세션에 들어있는 값 참조할 때 사용 HttpSession을 사용할 때 비해 타입 컨버전을 자동으로 지원하기 때문에 조금 편리함. HTTP 세션에 데이터를 넣고 빼고 싶은 경우에는 HttpSession을 사용할 것. @SessionAttributes와는 다르다. @SessionAttributes는 해당 컨트롤러 내에서만 동작. ... 스프링 mvc스프링 mvc 스프링 MVC 설정(1) : 스프링 MVC 빈 설정 1. 스프링 MVC 빈 설정 기본 전략 객체를 커스터마이징 해서 사용하기 @RequestBody나 @ResponseBody가 쓰일 때는(json, xml 파싱 등) MessageConverter가 사용된다. 따라서 MessageConverter 기능을 사용하고 싶다면 빈으로 등록해야 한다. 기본 전략 이외에 커스텀한 기능을 추가하고 싶으면 빈으로 등록해야 한다. 참고 인프런 : 스프링 웹 M... 스프링 mvc스프링 mvc MVC 활용(28) : 예외 처리 핸들러 - @ExceptionHandler 예외 처리 핸들러 - @ExceptionHandler 특정 예외가 발생한 요청을 처리하는 핸들러 정의 지원하는 메소드 아규먼트 (해당 예외 객체, 핸들러 객체, ...) 지원하는 리턴 값 REST API의 경우 응답 본문에 에러에 대한 정보를 담아주고, 상태 코드를 설정하려면 ResponseEntity를 주로 사용한다. 커스텀한 에러 만들기 커스텀한 에러가 발생했을 때 특정한 메시지와 함께 ... 스프링 mvc스프링 mvc MVC 활용(3) : HTTP 요청 맵핑하기 2부 - URI 패턴 맵핑 3. HTTP 요청 맵핑하기 2부 - URI 패턴 맵핑 URI, URL, URN 햇갈린다 여러개의 문자열로 매핑할 수도 있다. 테스트 코드 ? : 한 글자 (“/author/???” => “/author/123”) * : 여러 글자 (“/author/*” => “/author/keesun”) ** : 여러 패스 (“/author/** => “/author/keesun/book”) 테스트 코드... 스프링 mvc스프링 mvc 스프링 MVC 동작 원리(1) : 스프링 MVC 소개 자바 엔터프라이즈 에디션(Jave EE)은 웹 애플리케이션을 개발할 수 있는 HTTP Servlet(이하 서블릿)이라는 스팩과 API를 제공한다. 스프링 MVC는 서블릿 API 기반 애플리케이션을 개발할 때 보다 쉽고 빠르게 개발할 수 있는 프레임워크를 제공하여 개발자가 서블릿 API 보다는 애플리케이션 로직에 집중할 수 있도록 도와준다. 현재 많은 회사에서 스프링 MVC 기반으로 엔터프라이... 스프링 mvc스프링 mvc MVC 활용(16) : 핸들러 메소드 8부 - @SessionAttributes 핸들러 메소드 8부 - @SessionAttributes 모델 정보를 HTTP 세션에 저장해주는 애노테이션 HttpSession을 직접 사용할 수도 있지만 이 애노테이션에 설정한 이름에 해당하는 모델 정보를 자동으로 세션에 넣어준다. @ModelAttribute는 세션에 있는 데이터도 바인딩한다. 여러 화면(또는 요청)에서 사용해야 하는 객체를 공유할 때 사용한다. SessionStatus를... 스프링 mvc스프링 mvc